<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // Relftce.get(target, name, receiver);
        // 如果属性部署了读取函数(getter),
        // 则 get 函数的 this 绑定 receiver。
        let hero = {
            name: "剑圣",
            skill: '剑圣风暴',
            get age() {
                console.log("查询年龄");
                console.log(this);
                return "22"
            }
        }
        let star = {
            name: '陈奕迅',
            sing: '富士山下'
        }
        // console.log(Reflect.get(hero, "age"));
        console.log(Reflect.get(hero, "age", star));

        // 更多的方法，见 阮一峰博客
        // https://es6.ruanyifeng.com/#docs/reflect

        // Java的反射（reflection）机制:
        // 在程序的运行状态中，可以构造任意一个类的对象，
        // 可以了解任意一个对象所属的类，可以了解任意一个类的成员变量和方法，
        // 可以调用任意一个对象的属性和方法。
    </script>
</body>

</html>